A high performance network can be built with heterogeneous networks, for example, an Ethernet datacenter and an InfiniBand datacenter, with Ethernet gateways bridging between the two types of networks. Technologies have evolved in the industry that enable overlay networks to be created on top of existing networks in a high performance network. The overlay networks allow datacenters to scale above and beyond the limitations of the existing networks using network overlay protocols.
The scaling of datacenters or applications in the datacenters in a high performance network requires additional packet parsing and processing complexity due to the emergence of newer network overlay protocols. To keep up with higher throughput requirements of the scaled datacenters, some network protocol level offloads need to be performed at the level of lowest hardware components. For example, the network protocol level offloads can be performed by a network interface card (NIC), a switch, or a combination of a NIC and a switch with the work shared between the two. Depending upon where an offload engine resides, the offload engine needs to be optimized differently, so that higher throughput and low latency can be achieved.
Further, with a high performance network increasingly being used to support cloud computing, an increasing number of different types of overlay protocols may be used in the high performance network.
As such, it would be advantageous to provide a packet processing framework that can be programmed to support various overlay protocols and without requiring changes to hardware components supporting the framework. It would also be advantageous for the packet processing framework to have high throughput and low latency without additional optimization whether the packet processing framework is used in a NIC or in a switch, or in both a NIC and a switch.